% fname: routing_oddeven__sel_bufferlevel__topology_8x8__.m
% ./noxim -routing oddeven -sel bufferlevel -dimx 8 -dimy 8  -sim 10000 -warmup 2000 -size 8 8 -buffer 4 

function [max_pir, max_throughput, min_delay] = routing_oddeven__sel_bufferlevel__topology_8x8__(symbol)

data = [
%             pir      avg_delay     throughput      max_delay       rpackets         rflits
             0.01        22.7641      0.0794434            225           5086          40675
             0.01        22.0685      0.0796387            155           5096          40775
             0.01        23.9788       0.082709            196           5294          42347
             0.01        23.0865      0.0802383            152           5134          41082
             0.01        22.6164      0.0800332            133           5125          40977
             0.01        24.1637      0.0813027            257           5205          41627
             0.01         22.646      0.0794082            135           5082          40657
             0.01        22.4433      0.0800488            151           5123          40985
             0.01        23.7573      0.0826465            178           5287          42315
             0.01        22.2486      0.0788555            127           5049          40374
             0.01        21.9293      0.0789316            148           5053          40413
             0.01        23.9588      0.0807285            179           5166          41333
             0.01        23.1506      0.0806484            152           5159          41292
             0.01        22.3356      0.0818418            166           5236          41903
             0.01        22.3616      0.0784863            146           5022          40185
             0.01         23.192      0.0792422            234           5073          40572
             0.01        23.0396      0.0789199            126           5048          40407
             0.01        22.5186      0.0788145            170           5044          40353
             0.01        22.4507      0.0800332            148           5121          40977
             0.01        22.4778      0.0791836            147           5069          40542
           0.0105        24.6511      0.0842773            170           5394          43150
           0.0105        24.8665      0.0857617            174           5489          43910
           0.0105        24.6566      0.0820684            170           5251          42019
           0.0105        24.3143      0.0827246            251           5294          42355
           0.0105        24.0892      0.0837187            219           5357          42864
           0.0105        25.2115      0.0830703            233           5315          42532
           0.0105        23.8663        0.08575            161           5489          43904
           0.0105        24.6657      0.0833984            187           5337          42700
           0.0105        24.5045      0.0829063            198           5306          42448
           0.0105        24.1287      0.0838789            162           5371          42946
           0.0105         23.088      0.0838418            164           5361          42927
           0.0105        23.5633       0.083332            258           5331          42666
           0.0105        24.9009      0.0836172            249           5350          42812
           0.0105        24.8194      0.0844395            194           5405          43233
           0.0105        26.8351       0.086709            262           5549          44395
           0.0105        24.7545      0.0854395            180           5471          43745
           0.0105        23.6666       0.083957            150           5372          42986
           0.0105         24.441      0.0849141            156           5435          43476
           0.0105        24.6307      0.0846055            190           5416          43318
           0.0105        23.8794      0.0828125            138           5299          42400
            0.011        25.0905      0.0882539            176           5648          45186
            0.011        25.4516      0.0898438            191           5751          46000
            0.011        25.0609      0.0877852            164           5620          44946
            0.011        27.1893      0.0880313            227           5636          45072
            0.011        26.6024      0.0899609            258           5757          46060
            0.011        26.4495       0.087457            200           5595          44778
            0.011        26.8856      0.0867227            198           5551          44402
            0.011        24.3956      0.0871484            198           5581          44620
            0.011        26.3683      0.0892754            177           5716          45709
            0.011        24.6165      0.0891445            147           5705          45642
            0.011        24.8599      0.0873906            144           5595          44744
            0.011        26.8721      0.0861563            300           5513          44112
            0.011        24.6941       0.086666            181           5547          44373
            0.011        25.0679      0.0862754            368           5522          44173
            0.011        26.2889      0.0875879            177           5607          44845
            0.011        24.6011      0.0866719            267           5553          44376
            0.011        25.5431      0.0902715            159           5776          46219
            0.011        24.6621      0.0880801            165           5638          45097
            0.011        26.4354      0.0873203            201           5586          44708
            0.011        25.0994      0.0894785            176           5723          45813
           0.0115        26.2559      0.0927188            167           5935          47472
           0.0115        26.5233      0.0927031            197           5935          47464
           0.0115        25.3635      0.0909746            182           5821          46579
           0.0115         28.859      0.0922012            490           5899          47207
           0.0115        28.4922      0.0911699            292           5835          46679
           0.0115        26.7549      0.0912012            188           5838          46695
           0.0115        27.4161       0.090375            208           5782          46272
           0.0115        27.7296      0.0949824            242           6081          48631
           0.0115        27.4811      0.0924023            211           5914          47310
           0.0115        28.9309      0.0917695            277           5874          46986
           0.0115        26.0828       0.092791            183           5940          47509
           0.0115        27.5622        0.09275            292           5934          47488
           0.0115        27.8652       0.093041            196           5958          47637
           0.0115        27.4956      0.0929375            261           5946          47584
           0.0115        28.4072      0.0925352            194           5921          47378
           0.0115        26.3448      0.0906191            223           5798          46397
           0.0115        25.5958      0.0903125            197           5780          46240
           0.0115        27.4052       0.092877            252           5945          47553
           0.0115        27.8381      0.0924629            280           5919          47341
           0.0115        27.9259      0.0913262            283           5845          46759
            0.012        32.0824      0.0977148            535           6251          50030
            0.012        34.2042      0.0938965            574           6013          48075
            0.012        28.1408      0.0953379            224           6106          48813
            0.012        27.2004      0.0949863            243           6078          48633
            0.012        29.1112       0.095166            197           6089          48725
            0.012        29.8106      0.0958789            314           6135          49090
            0.012        31.7498       0.097252            486           6224          49793
            0.012        28.9974      0.0970957            319           6215          49713
            0.012        29.9069      0.0948828            235           6068          48580
            0.012        34.0879      0.0970332            355           6210          49681
            0.012        27.7784      0.0956973            204           6125          48997
            0.012        28.9291      0.0955566            202           6117          48925
            0.012        32.1014      0.0953652            354           6103          48827
            0.012        34.5008       0.094207            446           6034          48234
            0.012        27.6851      0.0953516            215           6106          48820
            0.012        28.9047      0.0946719            257           6054          48472
            0.012        26.9869       0.095082            180           6085          48682
            0.012        29.5311      0.0951523            332           6091          48718
            0.012        29.5235      0.0972266            221           6220          49780
            0.012        26.9666      0.0949277            214           6076          48603
           0.0125        31.1698      0.0986641            309           6314          50516
           0.0125         32.124       0.100334            271           6419          51371
           0.0125        31.2496       0.100174            236           6414          51289
           0.0125        32.3154      0.0987461            393           6316          50558
           0.0125        59.6204        0.10075            766           6444          51584
           0.0125        29.4665       0.100137            230           6410          51270
           0.0125        29.8363      0.0994375            233           6364          50912
           0.0125        31.0088      0.0998574            270           6396          51127
           0.0125        32.8729      0.0986641            350           6312          50516
           0.0125        39.8883       0.101242            434           6479          51836
           0.0125        59.9888      0.0994063           1034           6364          50896
           0.0125         31.904      0.0995684            373           6372          50979
           0.0125        32.0027         0.0995            277           6368          50944
           0.0125        38.0347        0.10051            368           6435          51461
           0.0125         29.191      0.0991953            193           6350          50788
           0.0125        30.1693      0.0980293            222           6266          50191
           0.0125        73.5907       0.104443           1182           6685          53475
           0.0125        29.0929      0.0986836            181           6316          50526
           0.0125        47.8414      0.0992695            780           6357          50826
           0.0125        32.4245      0.0996738            322           6380          51033
            0.013        35.1736       0.102826            385           6579          52647
            0.013        120.385       0.103859           2741           6644          53176
            0.013        34.3845       0.104426            299           6686          53466
            0.013        35.9188       0.103145            345           6598          52810
            0.013        42.6144        0.10408            452           6662          53289
            0.013         53.102       0.103299            682           6609          52889
            0.013        47.1281       0.104189            948           6668          53345
            0.013        38.9945       0.105285            312           6739          53906
            0.013        119.816       0.103771           1744           6648          53131
            0.013        70.9885       0.107307            680           6867          54941
            0.013        47.7705       0.105635            713           6764          54085
            0.013        38.3335       0.102271            585           6551          52363
            0.013        33.7169       0.104672            233           6700          53592
            0.013        33.0246       0.103643            270           6633          53065
            0.013        38.9187       0.103631            627           6632          53059
            0.013          42.92       0.102908            682           6586          52689
            0.013         49.806       0.105449            720           6746          53990
            0.013        51.9396       0.105006            755           6720          53763
            0.013        35.4129       0.104301            251           6675          53402
            0.013        42.0767        0.10234            515           6547          52398
           0.0135        96.8918       0.103664           1856           6635          53076
           0.0135        262.728       0.106668           2990           6828          54614
           0.0135        122.075       0.106381           1690           6808          54467
           0.0135        42.7554       0.107793            721           6897          55190
           0.0135        59.0799       0.106445           1216           6808          54500
           0.0135        39.0223       0.106672            378           6826          54616
           0.0135        180.285       0.105303           2276           6740          53915
           0.0135        61.6737       0.106275            782           6803          54413
           0.0135        291.317       0.104896           3944           6716          53707
           0.0135        51.0848       0.108055            626           6914          55324
           0.0135        106.631       0.105713           2070           6762          54125
           0.0135         91.495       0.104936           1714           6717          53727
           0.0135        141.138      0.0995684           2868           6377          50979
           0.0135        161.536       0.106324           2494           6803          54438
           0.0135        54.7415       0.106307            781           6802          54429
           0.0135         56.262       0.106635            564           6824          54597
           0.0135        52.5117       0.108117            805           6920          55356
           0.0135        36.1998        0.10684            343           6837          54702
           0.0135        38.8342       0.106557            298           6821          54557
           0.0135        75.4386       0.103885            967           6646          53189
            0.014        302.592      0.0976484           4765           6250          49996
            0.014         325.86       0.106674           4002           6826          54617
            0.014        79.1862       0.112475            988           7197          57587
            0.014        310.926       0.100074           4193           6406          51238
            0.014        123.866       0.102688           2678           6575          52576
            0.014        314.674       0.105508           3332           6754          54020
            0.014        138.634        0.10784           2278           6907          55214
            0.014        50.9312       0.112889            516           7228          57799
            0.014        473.887        0.10192           5286           6523          52183
            0.014        93.0111       0.111295           1592           7122          56983
            0.014        218.338       0.104125           2765           6665          53312
            0.014        60.1389       0.112387            768           7192          57542
            0.014         310.34       0.109045           3834           6976          55831
            0.014         117.44       0.100092           2325           6402          51247
            0.014        216.792      0.0947969           3689           6069          48536
            0.014        804.636      0.0910977           6745           5829          46642
            0.014        189.866       0.103867           3632           6645          53180
            0.014        122.368       0.109754           2529           7026          56194
            0.014        340.821      0.0974062           4233           6232          49872
            0.014         275.07       0.103248           4357           6605          52863
           0.0145        296.416      0.0976973           4613           6251          50021
           0.0145        283.761      0.0990313           5115           6334          50704
           0.0145        375.033      0.0912617           4909           5838          46726
           0.0145        635.554      0.0860313           6838           5502          44048
           0.0145        325.865      0.0939766           4895           6008          48116
           0.0145        129.713       0.110102           1567           7039          56372
           0.0145        307.033        0.10184           4310           6516          52142
           0.0145        260.348       0.105387           4034           6745          53958
           0.0145        434.561      0.0977148           5029           6258          50030
           0.0145        329.072      0.0976289           3881           6251          49986
           0.0145        320.864       0.109086           4939           6979          55852
           0.0145        343.216      0.0982715           5558           6290          50315
           0.0145        367.357      0.0998945           6110           6391          51146
           0.0145        417.478      0.0935957           5631           5992          47921
           0.0145        262.437       0.100744           4546           6447          51581
           0.0145        466.669       0.104748           6126           6704          53631
           0.0145        594.905      0.0925449           6942           5930          47383
           0.0145        279.189      0.0991582           4580           6345          50769
           0.0145        505.003      0.0983242           5728           6295          50342
           0.0145        615.251        0.10001           6709           6393          51205
            0.015         439.76      0.0995273           6371           6369          50958
            0.015        478.895      0.0906914           6016           5804          46434
            0.015        555.835       0.099082           6202           6343          50730
            0.015         769.99      0.0867402           6843           5551          44411
            0.015        466.028      0.0945176           6497           6052          48393
            0.015        637.686      0.0844141           7385           5402          43220
            0.015        554.848      0.0991758           6982           6348          50778
            0.015        495.958      0.0970684           6432           6208          49699
            0.015        606.608      0.0943008           7262           6035          48282
            0.015        518.793      0.0905156           6789           5791          46344
            0.015        882.365      0.0903105           8302           5780          46239
            0.015        719.418      0.0841504           7560           5390          43085
            0.015        596.288       0.093291           6574           5973          47765
            0.015        629.097      0.0944023           7660           6043          48334
            0.015        1008.72      0.0823906           8706           5278          42184
            0.015        407.659      0.0952852           6088           6099          48786
            0.015        515.202      0.0949043           6474           6073          48591
            0.015        461.359      0.0951309           6344           6084          48707
            0.015        521.689      0.0956543           6545           6123          48975
            0.015        414.664       0.102686           6248           6569          52575
           0.0155         653.26      0.0918066           7133           5869          47005
           0.0155        384.738      0.0981855           5382           6282          50271
           0.0155         957.51      0.0874941           8632           5599          44797
           0.0155        698.213      0.0876758           7862           5614          44890
           0.0155        655.046      0.0925586           7181           5926          47390
           0.0155        692.221      0.0946992           7935           6061          48486
           0.0155        520.273      0.0986094           6857           6309          50488
           0.0155        869.545      0.0843281           8489           5397          43176
           0.0155        731.723      0.0907402           8603           5807          46459
           0.0155        806.048       0.093291           8369           5971          47765
           0.0155        781.978      0.0909375           7967           5822          46560
           0.0155        654.438      0.0949863           7755           6079          48633
           0.0155        725.803      0.0930781           7438           5959          47656
           0.0155        653.879      0.0916895           7129           5868          46945
           0.0155        801.811      0.0975391           8408           6242          49940
           0.0155        664.737       0.090459           8248           5789          46315
           0.0155        750.583      0.0832832           7610           5332          42641
           0.0155        676.295      0.0904062           7355           5788          46288
           0.0155        655.388      0.0853711           8073           5466          43710
           0.0155        809.829      0.0881387           7306           5640          45127
            0.016        693.156      0.0930488           7797           5953          47641
            0.016        695.959      0.0828418           8455           5301          42415
            0.016         712.14      0.0887363           7600           5685          45433
            0.016        687.683      0.0880605           8355           5631          45087
            0.016        736.158      0.0974316           7812           6238          49885
            0.016        836.653      0.0884609           8478           5663          45292
            0.016        867.562      0.0865937           8085           5547          44336
            0.016        867.205      0.0879766           8738           5631          45044
            0.016        597.558      0.0986816           7004           6313          50525
            0.016        832.122      0.0963184           7950           6164          49315
            0.016        915.961      0.0893145           8430           5719          45729
            0.016          832.8      0.0843887           8873           5398          43207
            0.016        806.791      0.0791895           7849           5067          40545
            0.016        896.383      0.0937539           8844           6004          48002
            0.016        1008.48      0.0835723           7948           5348          42789
            0.016        729.911      0.0863809           8189           5527          44227
            0.016         834.48      0.0859805           7693           5499          44022
            0.016         694.21      0.0881602           7618           5638          45138
            0.016        891.522      0.0879883           8687           5636          45050
            0.016        975.787      0.0928652           8687           5944          47547
           0.0165        819.451      0.0841992           7763           5386          43110
           0.0165        863.407      0.0904512           8880           5787          46311
           0.0165        1017.99      0.0882793           8808           5651          45199
           0.0165        926.669       0.090418           8685           5785          46294
           0.0165        659.264      0.0933965           7411           5978          47819
           0.0165        848.691      0.0886211           8203           5671          45374
           0.0165        919.591      0.0823906           9103           5270          42184
           0.0165        1026.37      0.0868672           8139           5563          44476
           0.0165        918.903      0.0846758           8628           5422          43354
           0.0165        1088.55      0.0829434           8352           5310          42467
           0.0165        798.449      0.0822012           8422           5258          42087
           0.0165        816.209      0.0919434           7771           5887          47075
           0.0165        902.821      0.0819062           8468           5240          41936
           0.0165         824.41      0.0852539           8511           5455          43650
           0.0165        1023.66      0.0895156           9179           5727          45832
           0.0165        642.979      0.0945488           7839           6051          48409
           0.0165        815.639      0.0891172           8543           5708          45628
           0.0165        900.752      0.0853359           8156           5461          43692
           0.0165        1004.38      0.0900781           9038           5771          46120
           0.0165        962.121       0.091207           8442           5837          46698
            0.017        1056.44      0.0860293           8475           5508          44047
            0.017        886.461      0.0898203           8275           5750          45988
            0.017          995.1      0.0820625           8915           5248          42016
            0.017        1177.17      0.0817324           9182           5229          41847
            0.017         1041.8      0.0792285           8644           5069          40565
            0.017        949.547      0.0854883           8447           5471          43770
            0.017        1008.27      0.0851719           8622           5452          43608
            0.017        1065.36      0.0841328           8476           5383          43076
            0.017        920.915      0.0855879           8055           5477          43821
            0.017        1010.97      0.0885215           8782           5665          45323
            0.017        1134.77      0.0822305           8618           5266          42102
            0.017        952.818      0.0835078           8463           5342          42756
            0.017        1043.37      0.0948438           8310           6068          48560
            0.017        1143.06      0.0814805           8847           5213          41718
            0.017        939.416       0.084793           8456           5425          43414
            0.017         1173.5      0.0817383           8912           5229          41850
            0.017        1188.36      0.0830996           8691           5320          42547
            0.017        1058.72      0.0839844           8484           5373          43000
            0.017        993.789      0.0826582           8117           5290          42321
            0.017        873.364      0.0866445           7845           5541          44362
           0.0175        898.763      0.0807285           8416           5168          41333
           0.0175        1122.15      0.0806621           8409           5158          41299
           0.0175        1304.85      0.0795996           8917           5093          40755
           0.0175        1211.12      0.0817578           9042           5234          41860
           0.0175         903.32       0.086877           9083           5558          44481
           0.0175        1130.75      0.0821406           9114           5254          42056
           0.0175        1258.35      0.0801582           9024           5130          41041
           0.0175        718.648      0.0923086           7987           5912          47262
           0.0175        1044.38      0.0825957           9086           5284          42289
           0.0175        1045.82      0.0831621           9109           5319          42579
           0.0175        1016.88      0.0877422           8580           5618          44924
           0.0175        1186.55      0.0792715           8573           5073          40587
           0.0175        1158.91      0.0813613           8717           5206          41657
           0.0175        1198.19       0.085293           8614           5459          43670
           0.0175         983.69      0.0886758           8656           5678          45402
           0.0175        1054.61      0.0888574           8816           5688          45495
           0.0175        1234.57      0.0794453           8769           5085          40676
           0.0175        906.156      0.0891465           8710           5702          45643
           0.0175        1214.18      0.0790293           8988           5058          40463
           0.0175        1186.86      0.0813926           8749           5205          41673
];

rows = size(data, 1);
cols = size(data, 2);

data_delay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+1);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_delay = [data_delay; data(ifirst, 1:cols-5), avg ci];
end

figure(1);
hold on;
plot(data_delay(:,1), data_delay(:,2), symbol);

data_throughput = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+2);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_throughput = [data_throughput; data(ifirst, 1:cols-5), avg ci];
end

figure(2);
hold on;
plot(data_throughput(:,1), data_throughput(:,2), symbol);

data_maxdelay = [];
for i = 1:rows/20,
   ifirst = (i - 1) * 20 + 1;
   ilast  = ifirst + 20 - 1;
   tmp = data(ifirst:ilast, cols-5+3);
   avg = mean(tmp);
   [h sig ci] = ttest(tmp, 0.1);
   ci = (ci(2)-ci(1))/2;
   data_maxdelay = [data_maxdelay; data(ifirst, 1:cols-5), avg ci];
end

figure(3);
hold on;
plot(data_maxdelay(:,1), data_maxdelay(:,2), symbol);


%-------- Saturation Analysis -----------
slope=[];
for i=2:size(data_throughput,1),
    slope(i-1) = (data_throughput(i,2)-data_throughput(i-1,2))/(data_throughput(i,1)-data_throughput(i-1,1));
end

for i=2:size(slope,2),
    if slope(i) < (0.95*mean(slope(1:i)))
        max_pir = data_throughput(i, 1);
        max_throughput = data_throughput(i, 2);
        min_delay = data_delay(i, 2);
        break;
    end
end
